home *** CD-ROM | disk | FTP | other *** search
- /* スプライトプロセッサ */
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <msdos.cf>
-
- #include <egb.h>
- #include <mos.h>
- #include <sidework.h>
-
- #include "ysuty2.h"
- #include "s_button.h"
- #include "optimize.h"
-
-
- /* マクロ、ラベルの定義 */
- #define sprWin_x (24)
- #define sprWin_y (28)
- #define sprWinStep_x (80)
- #define sprWinStep_y (110)
-
- #define view_x0 (88)
- #define view_y0 (62)
- #define view_lx (337)
- #define view_ly (357)
-
- #define print_x (280)
- #define print_y (2)
-
- #define US unsigned
-
- #define C_BACK2 _C(4,14,2)
- #define C_BACK _C(4,8,16)
-
-
- /* グローバル変数の宣言 */
- char gwork[1536];
- char mwork[4096];
- char mpwork[258];
- ITEM *itm[30];
- char *Pbuf; /* PATファイル用バッファ */
- char *TMPbuf; /* テンポラリーな使い回せるバッファ */
- char *Ybuf; /* YSPファイル用バッファ */
- int OP_LEVEL=80; /* 最適化レベル(の平方根) */
- int WINTOP; /* 一番左上に表示されているパターンの番号の1/6 */
-
- FILE *fp,*fp2;
- char *title_PD[]={"サイドワーク","現在のフリーメモリ","画面の再描画",NULL};
- char *fileMenu_PD[]={"ARTemisのパターン新規読み込み","ARTemisのパターン追加読み込み","ARTemisのパターンとして保存","SPP新規読み込み","SPP保存",NULL};
- char *optimize_PD[]={"全部16色化","全部32K色化","16色以下しか使ってない32Kパターン全部を16色化","パレット番号の整理","範囲指定の16色化","範囲指定の32K色化","退避中のパレットによる16色化","透過色の指定",NULL};
- char *zoomStr[]={" ×1 "," ×2 "," ×4 "," ×8 ","×16",NULL};
- char *meyastr[]={"細かく","中庸","幅広く"}; /* 目安(^^;) */
-
-
- /* ソースファイルが長いのはやだ、しかし・・・(^^;) */
- #include "sppm.c"
-
-
-
- /* 各種初期化 */
-
- void init()
- {
- YGB_init(gwork,17,10);
- YGB_writePage(gwork,0);
- YGB_writeMode(gwork,PSET);
- YGB_use12dotFont();
-
- MOS_start(mwork,4096);
- MOS_resolution(0,17);
- MOS_writePage(0);
- MOS_color(0,_C(31,31,31));
- MOS_typeRom(81,0,0,mpwork);
- MOS_setpos(256,240);
- MOS_horizon(0,505);
- MOS_vertical(0,473);
-
- YGB_color(gwork,0);
- YGB_boxFul(gwork,0,0,511,479);
- YGB_fontSize(gwork,6,12);
-
- return;
- }
-
-
- /* 終了の前処理 */
- void term()
- {
- MOS_disp(0);
- MOS_end();
- return;
- }
-
-
- /* アイテム登録、初期画面の描画 */
- ITEM *addItems()
- {
- int x,y,i,j;
- char *buf;
- ITEM *top;
-
- YGB_writeMode(gwork,PSET);
- /* 背景色 */
- YGB_color(gwork,C_BACK);
- YGB_boxFul(gwork,0,0,511,479);
-
- /* 画面上方の溝(?) */
- YGB_color(gwork,C_BACK);
- YGB_boxFul(gwork,259,-2,494,18);
-
- /* EXITボタン (itm[0])*/
- SGB_gradProButton(gwork,493,0,511,18,_C(24,24,24),_C(8,8,8),0);
- top=YGU_addButton(NULL,493,0,18,18);
-
-
- /* タイトル (itm[1])*/
- SGB_gradProButton(gwork,0,0,112,18,_C(12,12,12),_C(0,0,0),0);
- YGB_color(gwork,_C(25,25,25));
- YGB_fontSize(gwork,6,12);
- YGB_print(gwork,15,14,"SPP Ver1.00");
- YGB_color(gwork,_C(27,27,27));
- YGB_print(gwork,16,14,"SPP Ver1.00");
- YGU_addPullDownMenu(top,0,0,112,18,title_PD,0,19,6,12);
-
- /* ファイルメニュー (itm[2])*/
- SGB_proButton(gwork,113,0,192,18, _C(0,0,0));
- YGB_color(gwork,_C(27,27,27));
- YGB_print(gwork,128,14,"ファイル");
- YGB_color(gwork,_C(12,12,12));
- YGB_fontSize(gwork,3,6);
- YGB_print(gwork,179,13,"▼");
- YGU_addPullDownMenu(top,113,0,80,18,fileMenu_PD,113,19,6,12);
-
- /* 最適化メニュー (itm[3])*/
- SGB_proButton(gwork,193,0,260,18, _C(0,0,0));
- YGB_color(gwork,_C(27,27,27));
- YGB_fontSize(gwork,6,12);
- YGB_print(gwork,208,14,"最適化");
- YGB_color(gwork,_C(12,12,12));
- YGB_fontSize(gwork,3,6);
- YGB_print(gwork,247,13,"▼");
- YGU_addPullDownMenu(top,193,0,68,18,optimize_PD,193,19,6,12);
-
-
- /* 現在のパターン番号等表示 */
- YGB_fontSize(gwork,6,12);
- SGB_holButton(gwork,print_x,print_y,print_x+191,print_y+15,_C(0,0,0));
- YGB_color(gwork,_C(27,27,27));
- YGB_print(gwork,print_x+2,print_y+13,"now:");
- SPM_printNumber(0);
-
-
- /* 各キャラデータの表示ウィンドウ(itm[4]-itm[27]) */
- x = sprWin_x;
- y = sprWin_y;
- /* パターン表示 */
- SGB_proButton(gwork,x ,y, x+75,y+75, _C(22,22,22));
- SGB_holButton(gwork,x+6,y+6,x+69,y+69, _C(0,0,0));
- /* パレットの表示 */
- SGB_holButton(gwork,x ,y+78,x+74,y+98, _C(0,0,0));
-
- if ((buf=malloc(76*99*2))==NULL)
- { SPM_errMes("メモリが少な過ぎます"); term(); exit(1); }
- YGB_getPattern(gwork,buf,x,y,x+75,y+98);
-
- /* コピーする(一回余分があるけどまあいいね(^^;)) */
- for (j=0;j<4;j++)
- {
- for (i=0;i<6;i++)
- {
- /* ボタンとして登録 */
- x = i * sprWinStep_x + sprWin_x;
- y = j * sprWinStep_y + sprWin_y;
- YGB_putPattern(gwork,buf,x,y,x+75,y+98);
- YGU_addButton(top,x+6,y+6,64,64);
-
- }
- }
- free(buf);
-
- /* スクロールバー (itm[28])*/
- YGU_addLongitudinalbar(gwork,top,0,20,12,458,1,1);
- YGB_writeMode(gwork,PSET);
-
-
-
- return(top);
- }
-
-
- /* タイトルメニューだ */
- void titleMenu(ITEM *tit)
- {
- switch(YGU_getPullDown(tit))
- {
- default: break;
- case 1: sdk_invoke(); break;
- case 2: SPM_freeMem(); break;
- case 3: SPM_redraw(); break;
- }
- return;
- }
-
-
- /* ファイルメニュー */
- void fileMenu(ITEM *fil)
- {
- switch(YGU_getPullDown(fil))
- {
- case 1:
- if (PATNUM!=0)
- {
- if (SPM_sure(" @@ @@ 本当にロードしていいですか? ",0)==1)
- SPM_readNewPAT();
- break;
- }
- else
- {
- SPM_readNewPAT();
- break;
- }
- case 2: SPM_addPAT(); break;
- case 3: SPM_savePAT(); break;
- case 4:
- if (PATNUM!=0)
- {
- if (SPM_sure(" @@ @@ 本当にロードしていいですか? ",0)==1)
- SPM_readNewSPP();
- break;
- }
- else
- {
- SPM_readNewSPP();
- break;
- }
- /* case 5.5: SPM_addSPP(); break; */
- case 5: SPM_saveSPP(); break;
- default: break;
- }
- return;
- }
-
-
- /* オプティマイズメニュー */
- void optimizeMenu(ITEM *opt)
- {
- switch(YGU_getPullDown(opt))
- {
- default: break;
- case 1:SPM_all16(); break;
- case 2:SPM_all32K(); break;
- case 3:SPM_under16(); break;
- case 4:SPM_arrangePALnumber(); break;
- /* 範囲・条件付き最適化 */
- case 5:SPM_limit16(); break;
- case 6:SPM_limit32K(); break;
- case 7:SPM_pushed(); break;
- /* 透過色の指定 */
- case 8:SPM_setThru(); break;
- }
- return;
- }
-
-
-
-
- /* ズーム */
- void zoomView(int x,int y,int mag,int num,short *tmpbuf)
- {
- char para[17];
- int px,py,i,j,loop_x,loop_y;
- px=pter[num].patx*16; py=pter[num].paty*16;
-
- _fill_char(magBuf,256*256*2,0);
-
- loop_x=(px<256/mag) ? px : 256/mag;
- loop_y=(py<256/mag) ? py : 256/mag;
-
- YGB_writeMode(gwork,PSET);
-
- MOS_disp(0);
-
- for (j=0;j<loop_y;j++)
- {
- for (i=0;i<loop_x;i++)
- magBuf[j*256/mag + i]=tmpbuf[(j+y)*px+i+x];
- }
- /*
- for (j=loop_y;j<256/mag;j++)
- {
- for (i=0;i<256/mag;i++)
- magBuf[j*256/mag + i]=0;
- }
- */
-
- if (mag!=1)
- {
- DWORD (para) =(US int)magBuf;
- WORD (para+4) =getds();
- WORD (para+6) =view_x0+6;
- WORD (para+8) =view_y0+22;
- WORD (para+10)=view_x0+261;
- WORD (para+12)=view_y0+277;
- WORD (para+14)=(US short)256/mag;
- WORD (para+16)=(US short)256/mag;
-
- EGB_putBlockZoom(gwork,0,para);
- }
- else
- YGB_putPattern(gwork,(char*)magBuf,view_x0+6,view_y0+22,
- view_x0+261,view_y0+277);
-
- MOS_disp(1);
-
- return;
- }
-
- /* スクロールバーでキャラクタ表示 */
- void scr_bar(ITEM *bar_x,ITEM *bar_y,int mag,int num,short *tmpbuf)
- {
- static int pre_x=-1;
- static int pre_y=-1;
- int x,y;
-
- x=YGU_getScrollBarPointer(bar_x);
- y=YGU_getScrollBarPointer(bar_y);
-
- if ( (pre_x!=x)||(pre_y!=y) )
- zoomView(x,y,mag,num,tmpbuf);
- pre_x=x; pre_y=y;
- return;
- }
-
- /* 伝染メニュー */
- void infection()
- {
- SPM_sure(" @@ @@まだできてないんです(;-;)",2);
- return;
- }
-
-
-
-
- /* 1パターン加工 */
- void patWindow(int num)
- {
- if (num>=PATNUM)
- return;
-
- short *tmpbuf;
- ITEM *pwin,*itms[30],*act=NULL;
- char str[20];
- char str1[4];
- int i;
- int mag; /* 拡大率 */
- int inum;
- int patx=pter[num].patx*16;
- int paty=pter[num].paty*16;
- int px,py,mx,my,dmy;
-
- px=pter[num].patx*16; py=pter[num].paty*16;
-
- mag=(patx>paty) ? patx : paty;
- mag=256/mag;
-
- if (mag==16)
- mag=16;
- else if (mag>=8)
- mag=8;
- else if (mag>=4)
- mag=4;
- else if (mag>=2)
- mag=2;
- else
- mag=1;
-
-
- pwin_st:;
-
- MOS_disp(0);
-
- if ((tmpbuf=malloc(px*py*2))==NULL)
- { SPM_errMes("メモリが足りません"); return; }
-
- SPM_expand(num,px,py,PAL[pter[num].palnum],tmpbuf);
-
-
-
- YGB_getPattern(gwork,zoomDlgBuf,view_x0,view_y0,view_x0+view_lx-1,
- view_y0+view_ly-1);
-
- /* ルーペ、ダイアログベース */
- SGB_proButton(gwork,view_x0,view_y0,view_x0+336,view_y0+356, _C(6,6,6));
-
- /* 終了ボタン...1 */
- SGB_gradProButton(gwork,view_x0+2,view_y0+2,view_x0+19,view_y0+19,
- _C(24,24,24),_C(6,6,6),0);
- pwin=YGU_addButton(NULL,view_x0+2,view_y0+2,18,18);
-
- /* スプライト表示ウィンドウ */
- YGB_color(gwork,_C(0,0,0));
- YGB_boxFul(gwork,view_x0+6,view_y0+22,view_x0+277,view_y0+277);
- /* スクロールバー 横...2,縦...3*/
- YGU_addLateralbar(gwork,pwin,view_x0+6,view_y0+278,256,16,
- patx,256/mag);
- YGU_addLongitudinalbar(gwork,pwin,view_x0+262,view_y0+22,16,256,
- paty,256/mag);
-
- YGB_writeMode(gwork,PSET);
- /* COPY(4) PASTE(5)ボタン */
- SGB_proButton(gwork,view_x0+289,view_y0+308,view_x0+334,view_y0+323,
- _C(6,6,12));
- YGU_addButton(pwin,view_x0+289,view_y0+308,46,16);
- YGB_color(gwork,_C(27,27,27));
- YGB_fontSize(gwork,6,12);
- YGB_print(gwork,view_x0+294,view_y0+321," COPY ");
- SGB_proButton(gwork,view_x0+289,view_y0+331,view_x0+334,view_y0+346,
- _C(6,6,12));
- YGU_addButton(pwin,view_x0+289,view_y0+331,46,16);
- YGB_color(gwork,_C(27,27,27));
- YGB_print(gwork,view_x0+294,view_y0+344," PASTE ");
- /* パレット表示 */
- SGB_holButton(gwork,view_x0+9,view_y0+306,view_x0+252,view_y0+325,
- _C(0,0,0));
- if (pter[num].palnum!=-1)
- {
- for (i=0;i<16;i++)
- {
- YGB_color(gwork,PAL[pter[num].palnum][i]);
- YGB_boxFul(gwork,view_x0+11+i*15,view_y0+308,view_x0+24+i*15,
- view_y0+323);
- }
- }
- else
- {
- YGB_color(gwork,_C(20,20,20));
- YGB_print(gwork,view_x0+15,view_y0+322,"No palette data");
- }
- /* 結線 */
- YGB_color(gwork,_C(14,14,22));
- YGB_boxFul(gwork,view_x0+254,view_y0+315,view_x0+287,view_y0+316);
- YGB_color(gwork,_C(14,14,22));
- YGB_boxFul(gwork,view_x0+270,view_y0+338,view_x0+287,view_y0+339);
- YGB_color(gwork,_C(14,14,22));
- YGB_boxFul(gwork,view_x0+270,view_y0+317,view_x0+271,view_y0+337);
-
- /* 文字 */
- YGB_color(gwork,_C(25,25,25));
- sprintf(str,"Pattern No.%04d",num);
- YGB_print(gwork,view_x0+16,view_y0+342,str);
-
- if (pter[num].palnum!=-1)
- sprintf(str,"Palette No.%04d",pter[num].palnum);
- else
- sprintf(str,"32K data...");
- YGB_print(gwork,view_x0+163,view_y0+342,str);
- YGB_color(gwork,_C(12,12,24));
- YGB_line(gwork,view_x0+229,view_y0+344,view_x0+252,view_y0+344);
- YGB_color(gwork,_C(24,4,4));
- YGB_line(gwork,view_x0+82,view_y0+344,view_x0+105,view_y0+344);
- /* 倍率変更ボタン(6-10) */
- for (i=0;i<5;i++)
- {
- if (mag==(1<<i))
- SGB_strHolButton(gwork,view_x0+288,view_y0+34+i*17,
- _C(0,0,0),zoomStr[i],6,12,0,_C(13,31,24));
- else
- SGB_strProButton(gwork,view_x0+288,view_y0+34+i*17,
- _C(0,0,0),zoomStr[i],6,12,0,_C(18,18,18));
- }
- for (i=0;i<5;i++)
- YGU_addButton(pwin,view_x0+288,view_y0+34+17*i,40,18);
-
- zoomView(0,0,mag,num,tmpbuf);
-
-
- MOS_rdpos(&dmy,&mx,&my);
- MOS_setpos(0,0);
- MOS_disp(1);
- MOS_disp(0);
-
- /* 最適化ボタン (11)*/
- if (pter[num].palnum==-1 && pter[num].p32buf!=NULL)
- SGB_strProButton(gwork,view_x0+282,view_y0+128,_C(18,6,6),
- " 最適化 ",6,12,0,_C(27,27,27));
- else if (pter[num].p32buf!=NULL)
- SGB_strProButton(gwork,view_x0+282,view_y0+128,_C(6,6,18),
- " 32K に ",6,12,0,_C(27,27,27));
- else
- SGB_strHolButton(gwork,view_x0+282,view_y0+128,_C(2,2,8),
- "必要なし",6,12,0,_C(13,13,13));
-
- YGU_addButton(pwin,view_x0+282,view_y0+128,52,16);
-
- MOS_setpos(mx,my);
-
- /* 最適化レベル用スクロールバー(12) */
- YGU_addLongitudinalbar(gwork,pwin,view_x0+288,view_y0+148,
- 12,128,320,16);
- /* 最適化レベル目安表示 */
- YGB_writeMode(gwork,PSET);
- YGB_color(gwork,_C(24,24,24));
- for (i=0;i<3;i++)
- YGB_print(gwork,view_x0+303,view_y0+176+i*42,meyastr[i]);
- /* レベルの数値を表示 */
- sprintf(str1,"%03d",OP_LEVEL);
- SGB_strHolButton(gwork,view_x0+282,view_y0+280,_C(0,0,0),
- str1,6,12,0,_C(24,24,24));
-
- /* 伝染(^^;)ボタン(13) */
- #if 0
- SGB_strProButton(gwork,view_x0+288,view_y0+8,
- _C(11,11,11)," 伝染 ",6,12,0,_C(31,31,31));
- YGU_addButton(pwin,view_x0+288,view_y0+6,40,16);
- #endif
-
-
- itms[0]=pwin;
- for (i=1;i<12;i++)
- itms[i]=YGU_nextItem(itms[i-1]);
-
- YGU_setScrollBarPointer(gwork,itms[11],OP_LEVEL);
-
-
-
-
- MOS_disp(1);
-
- while (act!=pwin)
- {
- act=YGU_allItemsAction(gwork,pwin);
- inum=YGU_itemSerialNumber(pwin,act);
- switch(inum)
- {
- case 1: break;
- case 2..3: scr_bar(itms[1],itms[2],mag,num,tmpbuf);break;
- case 4: /* COPY */
- if (pter[num].palnum==-1)
- { SPM_errMes("16色パターンにしか出来ません"); break; }
- if (SPM_sure(" @@ @@このパターンのパレットを退避します",0)==1)
- {
- if (stkpal!=-1)
- {
- PAL_USE[stkpal]--;
- if (PAL_USE[stkpal]==0)
- PALNUM--;
- }
- stkpal=pter[num].palnum;
- PAL_USE[stkpal]++;
- }
-
- break;
- case 5: /* PASTE */
- if (pter[num].palnum==-1)
- { SPM_errMes("一旦16色に最適化してください"); break; }
- if (stkpal==-1)
- { SPM_errMes("バッファにパレットが有りません"); break; }
- if (SPM_sure(" @@パレットをこれと差し替えます",9999)==1)
- {
- if (pter[num].p32buf==NULL)
- {
- if (SPM_plus32K(num)!=0)
- break;
- }
- PAL_USE[pter[num].palnum]--;
- if (PAL_USE[pter[num].palnum]==0)
- PALNUM--;
- pter[num].palnum=stkpal;
- PAL_USE[stkpal]++;
- if (SOP_optimize(pter[num].patbuf,PAL[pter[num].palnum],
- pter[num].p32buf,pter[num].patx*pter[num].paty*256)!=0)
- { SPM_errMes("最適化中にエラーが生じました");break;}
- YGU_deleteAll(pwin);
- YGB_putPattern(gwork,zoomDlgBuf,
- view_x0,view_y0,view_x0+view_lx-1,view_y0+view_ly-1);
- free(tmpbuf);
- SPM_showOne(num);
- SPM_printNumber(WINTOP*6);
- MOS_disp(1);
- goto pwin_st;
- }
- break;
- case 6..10:
- {
- mag=(1<<inum-6);
- MOS_disp(0);
- for (i=0;i<5;i++)
- {
- if (mag==(1<<i))
- SGB_strHolButton(gwork,view_x0+288,view_y0+34+i*17,
- _C(0,0,0),zoomStr[i],6,12,0,_C(13,31,24));
- else
- SGB_strProButton(gwork,view_x0+288,view_y0+34+i*17,
- _C(0,0,0),zoomStr[i],6,12,0,_C(18,18,18));
- }
- YGU_resetScrollBar(gwork,itms[1],patx,256/mag);
- YGU_resetScrollBar(gwork,itms[2],paty,256/mag);
- YGB_writeMode(gwork,PSET);
- MOS_disp(1);
- zoomView(0,0,mag,num,tmpbuf);break;
- }
- case 11:
- {
- int dotnum=pter[num].patx*pter[num].paty*256;
- short *patbuf=pter[num].p32buf;
- int flag=0,ret;
-
- if (pter[num].palnum==-1)
- {
- for (i=0;i<1024;i++)
- {
- if (PAL_USE[i]==0)
- {
- PAL_USE[i]++; flag=1;
- pter[num].palnum=i; PALNUM++;
- break;
- }
- }
- if (flag==0)
- {SPM_errMes("パレットの定義数が多すぎます");break;}
-
- ret=SOP_selPal(PAL[pter[num].palnum],patbuf,dotnum,
- OP_LEVEL*OP_LEVEL);
- if (ret!=0)
- { SPM_errMes("最適化中にメモリ不足が生じました。");break;}
- ret=SOP_optimize(pter[num].patbuf,
- PAL[pter[num].palnum],patbuf,dotnum);
- if (ret!=0)
- { SPM_errMes("最適化中にメモリ不足が生じました。");break;}
- YGU_deleteAll(pwin);
- MOS_disp(0);
- YGB_putPattern(gwork,zoomDlgBuf,
- view_x0,view_y0,view_x0+view_lx-1,view_y0+view_ly-1);
- free(tmpbuf);
- SPM_showOne(num);
- SPM_printNumber(WINTOP*6);
- MOS_disp(1);
- goto pwin_st;
- }
- else
- {
- if ((--PAL_USE[pter[num].palnum]) == 0)
- PALNUM--;
- pter[num].palnum=-1;
- YGU_deleteAll(pwin);
- MOS_disp(0);
- YGB_putPattern(gwork,zoomDlgBuf,
- view_x0,view_y0,view_x0+view_lx-1,view_y0+view_ly-1);
- free(tmpbuf);
- SPM_showOne(num);
- SPM_printNumber(WINTOP*6);
- MOS_disp(1);
- goto pwin_st;
- }
- }
- case 12:
- {
- OP_LEVEL=YGU_getScrollBarPointer(itms[11]);
- YGB_writeMode(gwork,PSET);
- sprintf(str1,"%03d",OP_LEVEL);
- MOS_disp(0);
- SGB_strHolButton(gwork,view_x0+282,view_y0+280,_C(0,0,0),
- str1,6,12,0,_C(24,24,24));
- MOS_disp(1);
- break;
- }
- case 13:
- {
- infection();
- break;
- }
-
- default:;
- }
- }
- YGU_deleteAll(pwin);
- MOS_disp(0);
- YGB_putPattern(gwork,zoomDlgBuf,
- view_x0,view_y0,view_x0+view_lx-1,view_y0+view_ly-1);
- MOS_disp(1);
- free(tmpbuf);
-
-
-
-
- return;
- }
-
-
- void execItems(ITEM *ext)
- {
- int next;
- int i,num;
- ITEM *act=NULL;
-
- itm[1]=ext;
- for (i=2;i<30;i++)
- itm[i]=YGU_nextItem(itm[i-1]);
-
- while (act!=ext)
- {
- act=YGU_allItemsAction(gwork,ext);
- num=YGU_itemSerialNumber(ext,act);
- switch(num)
- {
- default: break;
- case 1: break;
- case 2: titleMenu(itm[2]); break;
- case 3: fileMenu(itm[3]); break;
- case 4: optimizeMenu(itm[4]); break;
- case 5..28: patWindow(num-5+WINTOP*6); break;
- case 29:
- {
- next=YGU_getScrollBarPointer(itm[29]);
- if (_abs(next-WINTOP)>=3)
- {
- WINTOP=next;
- SPM_showWindow(WINTOP*6);
- SPM_printNumber(WINTOP*6);
- }
- else if (next!=WINTOP)
- SPM_scrollShowWindow(next-WINTOP);
- SPM_printNumber(WINTOP*6);
-
- YGB_writeMode(gwork,PSET);
- }
- }
- }
-
- YGU_deleteAll(ext);
- return;
- }
-
-
-
-
- /* メイン */
- int main(int argc,char *argv[])
- {
-
- path[0]=0;
- ITEM *top;
-
- init(); /* 各種初期化 */
- /* メモリの確保 */
- if ((sureBuf=malloc(248*121*2))==NULL)
- {
- YGB_color(gwork,_C(27,27,31));
- YGB_print(gwork,120,200,
- "RAMDISKをはずすか、残念だけどメモリを買うかしてね");
- term();
- return(1);
- }
- if ((fileSelBuf=malloc(120*248*2))==NULL)
- { SPM_sure(" @@ @@メモリが足りません(;-;)",2); term(); return(1); }
- if ((zoomDlgBuf=malloc(view_lx*view_ly*2))==NULL)
- { SPM_sure(" @@ @@メモリが足りません(;-;)",2); term(); return(1); }
- if ((magBuf=malloc(256*256*2))==NULL)
- { SPM_sure(" @@ @@メモリが足りません(;-;)",2); term(); return(1); }
- if ((sureBuf=malloc(248*121*2))==NULL)
- { SPM_sure(" @@ @@メモリが足りません(;-;)",2); term(); return(1); }
- if ((errMesBuf=malloc(485*16*2))==NULL)
- { SPM_sure(" @@ @@メモリが足りません(;-;)",2); term(); return(1); }
- if ((frameBuf=malloc(76*99*2))==NULL)
- { SPM_sure(" @@ @@メモリが足りません(;-;)",2); term(); return(1); }
-
- top=addItems(); /* アイテムの登録→実行 */
- MOS_disp(1);
- SPM_about(); /* あばうと */
- execItems(top);
- term(); /* 終了 */
- return(0);
- }
-